﻿/// <reference path="../../../MyJS/MyString.js" />

//弹出DIV

var PopupWin = function (configJson) {
    PopupWin.winCount += 1;
    this.config = {
        id: PopupWin.winCount, //当前弹出框的序号
        idPrefix: 'div_popup_',
        //下面的属性用户自定义配置的
        html: '', //弹出框的内容
        title: '', //弹出框的标题,
        //弹出框是否可以移动 title：指定只有标题部分可以控制移动，content：指定整个弹出框都可以控制移动
        move: { title: true, content: false }, 
        //可以单独设置CSS风格
        titleCss: {}, //弹出框标题的样式
        contentCss: {}, //内容区域的样式
        css: {}, //弹出框的css属性
        //可以直接设置CSS类别名
        titleClassName: 'popupWinTitle',
        contentClassName: '',
        closeBtnClassName: 'popupWinClose',
        className: 'popupWin'
    };
    //执行初始化操作
    this.init(configJson);
};

PopupWin.winCount = 0; //弹出DIV的数量
PopupWin.htmlTemplate = "<div id='{idPrefix}{id}' class='{className}' style='position:absolute;display:none;'>" +
                            "<div id='{idPrefix}{id}_close' class='{closeBtnClassName}'>&nbsp;</div>" +
                            "<div id='{idPrefix}{id}_title' class='{titleClassName}'>{title}</div>" +
                            "<div id='{idPrefix}{id}_content'>{html}</div>" +
                          "</div>";

PopupWin.prototype.init = function (configJson) {
    /// <summary>初始化函数</summary>
    /// <param name="configJson" type="JSON">配置弹出框的属性</param>
    if (configJson) {
        //复制属性
        var html = PopupWin.htmlTemplate;
        for (var item in this.config) {
            //创建弹出的DIV Html
            html = MyString.replaceAll(html, "{" + item + "}", configJson[item] || this.config[item]);
        }
    }
    $(html).appendTo(document.body);
    //绑定关闭按钮的事件
    $("#" + this.getID() + "_close").click({ win: this }, function (e) {
        //调用div的hide()事件进行隐藏
        e.data.win.hide();
    });
    //单击的时候，放在最先
    $("#" + this.getID()).click(function () {
        $(this).css("z-index", $.zIndex++);
    });
    //如果弹出框可以移动，则增加移动事件
    if (this.config.move.content) {
        JQMove.setMoveEl(this.getID());
    }
    else if (this.config.move.title) {
        JQMove.setMoveEl(this.getID() + "_title", this.getID());
    }
};

PopupWin.prototype.getID = function () {
    /// <summary>获取弹出框的ID号</summary>
    return this.config.idPrefix + this.config.id.toString();
};

PopupWin.prototype.show = function () {
    /// <summary>显示弹出框</summary>
    $("#" + this.getID()).show();
};

PopupWin.prototype.hide = function () {
    /// <summary>隐藏弹出框</summary>
    var sID = "#" + this.getID();
    $(sID).hide();
};

PopupWin.prototype.showAt = function (x, y) {
    /// <summary>在指定的位置上显示创建的DIV</summary>

};
